import file from '@system.file'

export default class File {
  constructor(app){
    this.app=app
    this.fileHead='internal://files/' //文件交互协议头部
  }
  /** 
      * 创建目录
      * @param {String} mkdir 新建目录名字
     */
  createMkdirData(mkdir,cb){
    const self = this
    file.mkdir({
      uri: `${self.fileHead+mkdir}/`,
      success: res=> {
        let data={
          code:1,
          data:res
        }
        cb(data)
      },
      fail: function (errmsg, errcode) {
        self.createMkdir = errcode + '---' + errmsg
        let data={
          message:errmsg,
          code:errcode
        }
        cb(data)
        console.info(`### file.mkdir ### ${errcode}: ${errmsg}`)
      }
    })
  }
  /** 
      * 删除目录
      * @param {String} mkdir 删除目录名字
     */
  deleteMkdirData(mkdir){
    const self = this
    file.rmdir({
      uri: `${self.fileHead+mkdir}/`,
      success: function (res) {
    

      },
      fail: function (errmsg, errcode) {
        // self.deleteMkdir = errcode + '---' + errmsg
        console.info(`### file.rmdir ### ${errcode}: ${errmsg}`)
      }
    })
  }
  /** 
      * 判断目录是否存在
      * @param {String} mkdir 判断目录是否存在
     */
  accessMkdirData(mkdir,cb) {
    const self = this
    file.access({
      uri:`${self.fileHead+mkdir}/`,
      success: function (res) {
        let data={
          code:1,
          data:res
        }
        if(cb){
          cb(data)
        }
      },
      fail: function (errmsg, errcode) {
        let data={
          message:errmsg,
          code:errcode
        }
        if(cb){
          cb(data)
        }
        console.info(`### file.access ### ${errcode}: ${errmsg}`)
      },
      complete:function(){
        console.info('执行完毕')
        let data={
          data:0,
          message:'执行完毕'
        }
        if(cb){
          cb(data)
        }
      }
    })
  }   
  /** 
     * 往文件里写入内容
     * @param {String} dir 存入的文件夹
     * @param {fileName} fileName 写入内容的文件名
     * @param {content} content 写入的内容
    */
  writeText(dir,fileName,content,cb){
    const self = this
    file.writeText({
      uri: `${self.fileHead}${dir}/${fileName}`,
      text: content,
      success: function(res) {
        console.log('writeText success')
        let data={
          code:1,
          data:res
        }
        if(cb){
          cb(data)
        }
      },
      fail: function(res, code) {
        console.log(`writeText fail, code = ${code}`)
        let data={
          code:code,
          data:res
        }
        if(cb){
          cb(data)
        }
      }
    })
  }
  /** 
     * 往文件里写入内容
     * @param {String} dir 存入的文件夹
     * @param {fileName} fileName 写入内容的文件名
     * @param {content} content 写入的内容
    */
  readText(dir,fileName,cb){
    const self = this
    console.log('===读取数据'+`${self.fileHead}${dir}/${fileName}`)
    file.readText({
      uri: `${self.fileHead}${dir}/${fileName}`,
      success: function(res) {
        console.log('readText success')
        let data={
          code:1,
          data:res
        }
        if(cb){
          cb(data)
        }
      },
      fail: function(res, code) {
        console.log(`readText fail, code = ${code}`)
        let data={
          code:code,
          data:res
        }
        if(cb){
          cb(data)
        }
      }
    })
  }

  rmDir(dir){
    const self = this
    file.rmdir({
      uri: `${self.fileHead}${dir}`,
      success: function(data) {
        console.log(`删除目录${dir}success`)
      },
      fail: function(data, code) {
        console.log(`handling fail, code = ${code}`)
      }
    })
  }

}